#pragma once

#include "SymmetricKey.h"

namespace kryptos { namespace cryptography {

class SymmetricKeyMemory : public SymmetricKey
{
public:
    SymmetricKeyMemory();
    SymmetricKeyMemory(const char* bytes, int len, bool reuseWhenFinished=false);

    virtual ~SymmetricKeyMemory();


    virtual void change(const char* bytes, int len, bool reuseWhenFinished=false);
    virtual bool isValid();
    virtual std::vector<char> nextBytes(int len);

protected:

    std::vector<char> m_key;

};


}}
